package com.mayfool.task.utils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * @author zhou.xu 2024/8/27 18:28
 */
public class FileUtil {

    public static List<File> listDirs(File dir, String dirName, int maxDepth) {
        List<File> result = new ArrayList<>();
        if (dir == null || !dir.exists()) {
            return result;
        }
        if (maxDepth <= 0) {
            return result;
        }
        File[] files = dir.listFiles();
        if (files == null) {
            return result;
        }
        for (File file : files)  {
            if (file.isDirectory()) {
                if (dirName.equals(file.getName())) {
                    result.add(file);
                    return result;
                }
                List<File> list = listDirs(file, dirName, maxDepth - 1);
                result.addAll(list);
            }
        }
        return result;
    }

    public static void main(String[] args) {
        List<File> gitDirs = listDirs(new File("E:\\git\\all"), ".git", 3);
        for (File gitDir : gitDirs) {
            System.out.println(gitDir.getParent());
        }
    }
}
